package org.jzs.mybaseapp

import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.util.Log
import android.widget.Button
import java.util.*

/**
 * Created by Jzs on 2017/7/26.
 * 学习kotlin
 */

/**
 * kotlin中":"有很多用处
 * 例如原来的 继承 extends 就可用 : 代替
 */
class KotlinActivity : AppCompatActivity() {


    //所有变量都要用 var 字段定义
    private var tv_hello: Button? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        //findViewById 用 as 定义类型
        tv_hello = findViewById(R.id.btn_retrofit) as Button
        tv_hello!!.text = "hello kotlin"
        tv_hello!!.setTextColor(R.color.red)
        Log.e("aaa", 7.toString() + "")
        this!!.A()
    }


    /**
     * 方法用 fun 字段定义，其中public可省略，只有在定义private时才需写上
     * A()方法等价于
    public void A() {
    Log.e("aaa", "aaa");
    }
     * 可以看出 void 也可省略
     */
    fun A() {
        Log.e("aaa", "aaa")
    }

    /**
     * 传入参数用 [变量名：类型] 的写法
     * 如果需要返回值，用 : 定义返回值的类型
     */
    private fun C(str: String): String {
        return str
    }


    /**
     * for 循环的几种写法
     */
    private fun getInfo() {

        val mList = ArrayList<Int>()
        mList.add(1)
        mList.add(2)
        mList.add(3)
        mList.add(4)
        mList.add(5)

        for (i in 0..9) {

        }

        for (i in mList.indices) {
            Log.e("list", mList[i].toString() + "")
        }

        for (i in mList) {
            Log.e("list", "$i")
        }
    }


    /**
     * when 代替了 switch
     */
    private fun swi(x: Int) {
        when (x) {
        // x -> do something
            1 -> Log.e("when", "$x")
            2 -> Log.e("when", "$x")
            else -> {
                Log.e("when", "else")
            }
        }
    }
}
